#ifndef ESTRATEGIARECURSOESCRITURADIRECTA_H_
#define ESTRATEGIARECURSOESCRITURADIRECTA_H_

#include "EstrategiaRecurso.h"

namespace Toolkit
{

/**
 * La política de uso del recurso secundario es la siguiente:
 * -Se asume que no hay un límite en la cantidad de unidades que se pueden almacenar.
 * -Cada dato nuevo que se graba a disco, se graba también en buffer. 
 * -Cada dato que se lee de disco y no está en buffer, se pasa al buffer.
 * -Salvo las lecturas, las otras operaciones se aplican igualmente sobre ambos almacenamientos.
 * */

class EstrategiaRecursoEscrituraDirecta : public EstrategiaRecurso
{
public:
	EstrategiaRecursoEscrituraDirecta(const TipoSerializacion tserializacion, 
		const unsigned long int &tamanoBloque, const bool &controlarUnicidad = true);
	
	virtual ~EstrategiaRecursoEscrituraDirecta();
	
	virtual void guardarDato(const Dato &dato, const Clave &clave);
    virtual bool recuperarDato(const Clave &clave, Dato &dato);
    virtual void eliminarDato(const Clave &clave, Dato &dato);
    virtual void actualizarDato(const Dato &dato, const Clave &clave);

};

}

#endif /*ESTRATEGIARECURSOESCRITURADIRECTA_H_*/
